package com.totoro.domain;

import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;

/**
 * @generated
 */
// 毕业论文实体类
@Entity
@Table(name = "graduate_paper")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class GraduatePaper extends Project {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * @generated
	 */
	// 组件映射
	@Embedded
	@AttributeOverrides({
			@AttributeOverride(name = "background", column = @Column(name = "openingReport_background")),
			@AttributeOverride(name = "keyTopic", column = @Column(name = "openingReport_keyTopic")),
			@AttributeOverride(name = "survey", column = @Column(name = "openingReport_survey")),
			@AttributeOverride(name = "programVerification", column = @Column(name = "openingReport_programVerification")),
			@AttributeOverride(name = "schedule", column = @Column(name = "openingReport_schedule")) })
	private OpeningReport openingReport;// 开题报告

	/**
	 * @generated
	 */
	@ManyToOne
	@JoinColumn(name = "openingReportApprovalFromDepartment")
	private Tutor openingReportApprovalFromDepartment;// 教研室审核开题报告

	/**
	 * @generated
	 */
	@ManyToOne
	@JoinColumn(name = "openingReportApprovalFromTutor")
	private Tutor openingReportApprovalFromTutor;// 老师审核开题报告

	/**
	 * @generated
	 */
	private boolean openingReportApprovedByTutor;// 老师审核开题报告通过否

	/**
	 * @generated
	 */
	private boolean openingReportApprovedByDepartment;// 老师审核开题报告通过否

	// 空构造器
	public GraduatePaper() {
	}

	public OpeningReport getOpeningReport() {
		return openingReport;
	}

	public void setOpeningReport(OpeningReport openingReport) {
		this.openingReport = openingReport;
	}

	public Tutor getOpeningReportApprovalFromDepartment() {
		return openingReportApprovalFromDepartment;
	}

	public void setOpeningReportApprovalFromDepartment(
			Tutor openingReportApprovalFromDepartment) {
		this.openingReportApprovalFromDepartment = openingReportApprovalFromDepartment;
	}

	public Tutor getOpeningReportApprovalFromTutor() {
		return openingReportApprovalFromTutor;
	}

	public void setOpeningReportApprovalFromTutor(
			Tutor openingReportApprovalFromTutor) {
		this.openingReportApprovalFromTutor = openingReportApprovalFromTutor;
	}

	public boolean isOpeningReportApprovedByTutor() {
		return openingReportApprovedByTutor;
	}

	public void setOpeningReportApprovedByTutor(
			boolean openingReportApprovedByTutor) {
		this.openingReportApprovedByTutor = openingReportApprovedByTutor;
	}

	public boolean isOpeningReportApprovedByDepartment() {
		return openingReportApprovedByDepartment;
	}

	public void setOpeningReportApprovedByDepartment(
			boolean openingReportApprovedByDepartment) {
		this.openingReportApprovedByDepartment = openingReportApprovedByDepartment;
	}

}